package com.example.detepickerdemo.slice;

import com.example.detepickerdemo.ResourceTable;
import ohos.aafwk.ability.AbilitySlice;
import ohos.aafwk.content.Intent;
import ohos.agp.colors.RgbColor;
import ohos.agp.components.DatePicker;
import ohos.agp.components.element.ShapeElement;
import ohos.agp.utils.Color;

public class MainAbilitySlice extends AbilitySlice {
    @Override
    public void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_ability_main);

        // 获取组件实例对象
        DatePicker picker = (DatePicker) findComponentById(ResourceTable.Id_date_picker);
        // 设置选中的日期
        picker.updateDate(2023, 5, 1);
        // 设置最小可选择的日期时间戳
        picker.setMinDate(1627747200);
        // 设置最大可选择的日期时间戳
        picker.setMaxDate(1827747200);
        // 设置月份是否固定不可修改
        picker.setMonthFixed(false);
        // 设置年份是否固定不可修改
        picker.setYearFixed(true);
        // 设置日是否固定不可修改
        picker.setDayFixed(false);
        // 设置默认状态下的文本颜色
        picker.setNormalTextColor(Color.GRAY);
        // 设置选中状态下的文本颜色
        picker.setSelectedTextColor(Color.BLACK);
        // 设置当前正在操作的一栏的文本颜色
        picker.setOperatedTextColor(Color.BLUE);
        // 设置是否循环滚动
        picker.setWheelModeEnabled(true);
        // 定义Shape对象
        ShapeElement shape = new ShapeElement();
        shape.setShape(ShapeElement.RECTANGLE);
        shape.setRgbColor(RgbColor.fromArgbInt(0xFF9370DB));
        // 设置分割线Element
        picker.setDisplayedLinesElements(shape, shape);

        // 设置模式
        picker.setDateOrder(DatePicker.DateOrder.YM);
        // 设置监听
        picker.setValueChangedListener(new DatePicker.ValueChangedListener() {
            @Override
            public void onValueChanged(DatePicker datePicker, int year, int month, int day) {
                // 获取到用户选择的年月日
            }
        });
    }

    @Override
    public void onActive() {
        super.onActive();
    }

    @Override
    public void onForeground(Intent intent) {
        super.onForeground(intent);
    }
}
